1. Field of the Invention
The present invention relates especially to a data transferring method for data transferring between data processing apparatuses connected mutually through a network, and to a communication system and a program that are applied with the method.
2. Description of the Related Art
In a network such as the Internet or an intranet, etc., when data are transmitted at a processing speed exceeding the processing speed of a relaying/processing apparatus, the data that can not be processed are lost. Such a state is referred to as “congestion state”. When congestion has occurred, the congestion will be made worse if additional data are further transmitted.
According to TCP (Transmission Control Protocol) that is a protocol used generally in data communication, the amount of data that can be transmitted together at one time by the transmitting side is provided corresponding to the size of a window.
The transmitting side does not transmit the succeeding data until the transmitting side receives an acknowledgment of reception of the data from the receiving side. Therefore, the communication performance is degraded.
According to TCP, as a measure against congestion, A method is taken that the amount of data to be transmitted together at one time is made small at the start of communication by setting the size of a window to be small and, when a response has arrived from the receiving side, the amount of the data to be transmitted is increased by enlarging the size of the window gradually. This method is referred to as “slow start”.
When RTT (Round Trip Time) that corresponds to the distance between networks is small, communication is recovered soon even when the size of the window is made small. However, when RTT is large, a problem has arisen that the transfer speed is remained to be slow because the size of the window can not be recovered so soon.
For the above technical problem, various suggestions have been presented that improve efficiency from the viewpoint of coding.
As a first conventional technique, an invention described in Japanese Patent Application Laid-Open Publication No. 1995-123043 can be listed. This invention selects and varies an appropriate coding scheme or a coding rate without degrading the efficiency even when the state of a transmission path is changed often.
As a second conventional technique, an invention described in Japanese Patent Application Laid-Open Publication No. 1996-265304 can be listed. This invention is a method that prevents degradation of the transmission efficiency and prevents increase of the communication time by switching the error control scheme in response to the change of the line state of a wireless line. However, according to this method, data are transmitted according to two (2) or more coding schemes, error detection is executed to each of the results of decoding, and the decoding result from which no error has been detected is accepted as the correct information. Therefore, a problem has arisen that the amount of transmission becomes large.
To solve the problems caused based on RTT in the above TCP communication, the inventors, etc., of the present invention have suggested to transfer data at a high speed by transmitting a packet in UDP (User Datagram Protocol) that uses no response (ACK) from the receiving side and repairing packet loss by FEC (Forward Error Correction), in a previous Japanese Patent Application Laid-Open Publication No. 2004-539446; “Carrying of a Computer Work Environment and Sharing of Data by DirectShare”, Ubiquitous Computing System Workshop, Information Processing Society of Japan, Reference for Presentation in November 2003; “P2P-type Information Sharing System-DirectShare-”, 32nd MBL/7th Joint Presentation of Studies, Reference for Presentation in March 2005; and “DirectShare: Information Sharing system using P2P”, HCI International, 2005, 22-27, Jul. 2005, Las Vegas.
The above suggestions by the inventors, etc., employ FEC that can code and decode at a high speed with simple calculation and small amount of memory.
The overview of the FEC in the above suggestions will be described referring to FIG. 1. Data 1A to be transmitted from a transmission side apparatus 1 through a communication path 3 to a reception side apparatus 2 are divided into small blocks (s1). Appropriate combinations are created from the divided blocks (s2). Among the combinations, X or (exclusive OR) is calculated (s3). The calculated data are transmitted together with information on the combinations (s4).
At this time, a case where data are lost (sx) on the communication path 3 can be considered.
By applying the Gaussian elimination to the information on the combination (s5), decoded data 1B corresponding to the original data can be obtained from the data received at the data reception side apparatus 2.
A coding system is characterized in that, by transmitting excessively the data to be transmitted by several percents in using FEC, even when any of packets is lost on the communication path 3 (s4), the original data can be recovered or corrected from the packets that can be received. Such a coding system is referred to as RPS (Random Parity System).
The line state of the network may be degraded suddenly and may not be constant due to the time of day and other factors. In the congestion control like the “slow start” of TCP, a problem has arisen that lines can not be utilized effectively.